<?php

namespace Modules\Admin\Models;

use Illuminate\Database\Eloquent\Model as EloquentModel;
use Illuminate\Support\Facades\DB;
class BaseModel extends EloquentModel 
{
    protected $guarded = [];
	/**
	 * @return 返回状态配置
	 */
	protected static function common_status(){
		return [
			'0'=>config('admin.forbidden'),
			'1'=>config('admin.enabled'),
		];
	}
	/**
	 * @name  添加公共方法
	 * @param data 添加数据
	 * @param url 成功跳转路径
	 * @param msg 成功提示语
	 * @param error 失败提示语
	 * @return 返回json数据
	 */
	public function common_create($data,$url,$msg = '',$error = ''){
		if($msg == ''){
			$msg = config('admin.create_success');
		}
		if($error == ''){
			$error = config('admin.create_error');
		}
		$data['created_at'] = date('Y-m-d H:i:s');
		if ($this->insert($data)){
			return response()->json([
				'status'=>1,
				'error' => '',
				'msg' => $msg,
				'url'=>$url
			],200);
        }else{
			return response()->json([
				'status'=>0,
				'error' => $error,
				'msg' => '',
				'url'=>$url
			],201);
		}
	} 
	/**
	 * @name  编辑公共方法
	 * @param data 编辑数据
	 * @param id 	编辑条件
	 * @param url 成功跳转路径
	 * @param msg 成功提示语
	 * @param error 失败提示语
	 * @return 返回json数据
	 */
	public function common_update($data,$id,$url,$msg = '',$error = ''){
		if($msg == ''){
			$msg = config('admin.update_success');
		}
		if($error == ''){
			$error = config('admin.update_error');
		}
		unset($data['_method']);
		$data['updated_at'] = date('Y-m-d H:i:s');
        if ($this->where('id',$id)->update($data)){
            return response()->json([
				'status'=>1,
				'error' => '',
				'msg' => $msg,
				'url'=>$url
			],200);
        }else{
			return response()->json([
				'status'=>0,
				'error' => $error,
				'msg' => '',
				'url'=>$url 
			],201);
		}
	}
	/**
	 * @name  调整状态公共方法
	 * @param data 编辑数据
	 * @param id 	编辑条件
	 * @param url 错误时跳转路径
	 * @param msg 成功提示语
	 * @param error 失败提示语
	 * @return 返回json数据
	 */
	public function common_status_update($data,$id,$url,$msg = '',$error = ''){
		if($msg == ''){
			$msg=config('admin.status_success');
		}
		if($error == ''){
			$error = config('admin.status_error');
		}
		unset($data['_method']);
        if ($this->where('id',$id)->update($data) !== false){
            return response()->json([
				'status'=>1, 
				'error' => '',
				'msg' => $msg,
				'url'=>$url
			],200);
        }else{
			return response()->json([
				'status'=>0,
				'error' => $error,
				'msg' => '',
				'url'=>$url 
			],201);
		}
	}
	/**
	 * @name  删除公共方法
	 * @param id 	删除id
	 * @param url 错误时跳转路径
	 * @param msg 成功提示语
	 * @param error 失败提示语
	 * @return 返回json数据
	 */
	public function common_destroy($ids,$url,$msg = '',$error = ''){
		if($msg == ''){
			$msg = config('admin.delete_success');
		}
		if($error == ''){
			$error = config('admin.delete_error');
		}
        if ($this->destroy($ids)){
            return response()->json([
				'status'=>1,
				'error' => '',
				'msg' => $msg,
				'url'=>$url
			],200);
        }else{
			return response()->json([
				'status'=>0,
				'error' => $error,
				'msg' => '',
				'url'=>$url 
			],201);
		}
	}
	
}
